<?php

namespace App\Common;

use Illuminate\Support\Facades\Cache as X;

trait Cache
{

	static function key ($id)
	{
		return self::class.':'.$id;
	}


	/**
	 * 删除、设置、获取缓存
	 * @param $id string 键名
	 * @param $dat mixed 键值 null表示获取，否则表示设置。
	 * @param $exp int 存储时间（分钟）：<0，删除缓存；0，永久存储；>0，缓存有效期。
	 * */
	static function cache ($id, $dat=null, $exp=60)
	{
		$id = self::key($id);

		// 删除
		if ($exp<0) {
			return X::forget($id);
		}

		// 存储
		if (isset($dat)) {
			return  $exp ? X::put($id, $dat, $exp*60) : X::forever($id, $dat);
		}

		// 获取
		return X::get($id);
	}


}
